#ifndef DATABASEMANAGER_H
#define DATABASEMANAGER_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
#include <QMessageBox>
#include "user.h"

class DatabaseManager : public QObject
{
    Q_OBJECT

public:
    explicit DatabaseManager(QObject *parent = nullptr);
    ~DatabaseManager();

    // 数据库连接管理
    bool connectDatabase();
    void closeDatabase();
    bool isConnected() const;

    // 用户管理操作
    bool addUser(const User &user);
    bool removeUser(int userId);
    bool updateUser(const User &user);
    User findUserByUsername(const QString &username);
    User findUserById(int userId);
    QList<User> getAllUsers();
    bool isUsernameExists(const QString &username);

    // 数据库初始化
    bool initializeDatabase();

private:
    QSqlDatabase m_database;
    bool m_isConnected;

    // 创建用户表
    bool createUserTable();
    
    // 插入默认管理员账户
    bool insertDefaultAdmin();
};

#endif // DATABASEMANAGER_H
